/* 
 * UnidadeOperacionalServiceImpl.java
 * 
 * Data de criação: 28/09/2010
 * 
 * O2 SOLUTIONS - SOLUÇÕES EM TECNOLOGIA DA INFORMAÇÃO. 
 *
 */
package br.com.o2solutions.siso.service.impl;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import br.com.o2solutions.core.business.BasicBusiness;
import br.com.o2solutions.core.exception.BusinessException;
import br.com.o2solutions.core.service.ServiceSupport;
import br.com.o2solutions.siso.business.AgenteBusiness;
import br.com.o2solutions.siso.integration.entidade.UnidadeOperacional;
import br.com.o2solutions.siso.service.UnidadeOperacionalService;

/**
 * Classe responsável por implementar os métodos de serviço relacionados ao
 * objeto de domínio {@link UnidadeOperacional}.
 * 
 * @author osvaldeir
 * @since 28/09/2010
 * 
 */
@Service("unidadeOperacionalService")
public class UnidadeOperacionalServiceImpl extends
		ServiceSupport<UnidadeOperacional, BasicBusiness<UnidadeOperacional>>
		implements UnidadeOperacionalService {

	private static final long serialVersionUID = -8348731250571726441L;
	
	@Value("#{agenteBusiness}")
	private AgenteBusiness agenteBusiness;

	@Override
	@Value("#{unidadeOperacionalBusiness}")
	public void setBusinessObject(
			BasicBusiness<UnidadeOperacional> businessObject) {
		super.setBusinessObject(businessObject);
	}
	
	/**
	 * {@inheritDoc}
	 */
	@Override
	public void save(UnidadeOperacional entity) throws BusinessException {
		agenteBusiness.verificarExistenciaAgente(entity.getComandante());
		super.save(entity);
	}

}
